一篇文章、三种方法在Debian上轻松安装Nginx |
您所在的位置:网站首页 › debian桌面版 安装 deb › 一篇文章、三种方法在Debian上轻松安装Nginx |
封面嗷 作者:Mintimate 博客:https://www.mintimate.cn Mintimate's Blog,只为与你分享 Nginx“Nginx 是一款轻量级的 HTTP 服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的 IO 性能,时常用于服务端的反向代理和负载均衡。” 优点Nginx的优点,相信大家基本都知道,这里列举一些: 轻量级 Nginx相比Apache,并发性更好,CPU内存占用更少。但是对于批量的rewrite请求,Apache相应效率更高。高扩展性 Nginx的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成。因此,当对某一个模块修复Bug或进行升级时,可以专注于模块自身,无须在意其他。高可靠性 Nginx的高可靠性来自于其核心框架代码的优秀设计、模块设计的简单性;官方提供的常用模块都非常稳定,每个worker进程相对独立,master进程在1个worker进程出错时可以快速“拉起”新的worker子进程提供服务。热部署 Nginx能够提供热部署功能,即可以在7×24小时不间断服务的前提下,升级Nginx的可执行文件。并且也支持不停止服务就更新配置项、更换日志文件等功能环境准备本次安装Nginx,是在Debian发行版本的Linux上安装,如果是CentOS发行版本Linux,需要注意: 软件包管理安装需要使用yum,而不是apt-get编译安装时,需要自行安装:gcc、pcre、zlib以及openssl推荐的服务器可以选择腾讯云轻量应用服务器: 选择服务器另外,如果你觉得本文的安装方法过于技术型。其实,也可以试试宝塔面板的一键操作。 dpkg安装NginxDebian使用apt-get作为软件包管理器,所以我们可以使用apt-get直接安装dpkg,进而安装Nginx: 代码语言:txt复制sudo apt-get install nginx安装完以后,输入whereis nginx查看Nginx的安装位置,其中的nginx.conf为Nginx的配置文件。 这样的方法很简单,也十分快但是坏处也很明显: 无法自定义Nginx模块Docker安装NginxDocker上安装NginxDocker安装Nginx其实和dpkg安装差不多,在安装了Docker情况下: 代码语言:txt复制# 查找Nginx docker search nginx查找Nginx镜像使用命令拉取镜像到本地 代码语言:txt复制docker pull nginxpull操作之后,查看镜像ID: 代码语言:txt复制docker images nginx查看ID根据ID,创建Docker容器,并完成80端口的映射: 代码语言:txt复制docker run -d --name myNginx -p 80:80 d1a创建容器此时,浏览器登陆即可看到Nginx页面: Nginx页面至于修改镜像,个人推荐把Docker镜像挂载到Linux上进行修改。 总的来说,Docker安装的Nginx,我觉得配置起来,和dpkg安装Nginx差不多。 手动编译安装Nginx手动编译安装手动编译安装Nginx比较复杂,但是平时一般使用最多。原因: 便于管理 编译安装的Nginx,其安装地址可控,如果需要卸载,执行反编译即可。模块可控 Nginx有其丰富的模块库,如:ngx-fancyindex。使用Docker或软件包管理器安装的Nginx,模块有时不方便载入。现在就来讲解如何编译安装Nginx。 在这之前,首先确保的软件包没过时: 代码语言:txt复制sudo apt-get update环境准备编译Nginx需要gcc+的环境支持,build-essential内包含gcc+套件,所以我们安装build-essential即可: 代码语言:txt复制sudo apt-get install build-essential安装build-essentialTips________:你也可以自己编译gcc+ 因为nginx.conf中使用了正则表达式,所以编译Nginx时就需要把PCRE库编译进Nginx,而Debian内安装PCRE库,可以这样安装: 代码语言:txt复制sudo apt-get install libpcre3 libpcre3-dev安装libpcre3和libpcre3-dev当热,Nginx编译过程和Http相应过程还需要gzip格式的压缩,所以我们还需要安装zlib库用于对HTTP包的内容做gzip格式的压缩,可以这样安装: 代码语言:txt复制sudo apt-get install zlib1g-dev安装 zlib1g-dev最后,现在SSL协议很重要,Chrome等主流浏览器,都开始默认相应HTTPS了,所以OpenSSL编译环境也很重要: 代码语言:txt复制sudo apt-get install openssl libssl-dev安装openssl和libssl-dev库另外,如果你不想安装OpenSSL,或者想指定第三方OpenSSL用于编译,可以在Nginx编译时添加编译参数:--with-openssl 下载Nginx源码接下来,我们下载并解压Nginx的源码,Nginx源码下载官方地址: http://nginx.org/en/download.html 开发环境,我们使用最新稳定版本Nginx: 下载Nginx源码代码语言:javascript复制# 下载Nginx 1.20.1源码(Stable稳定版本) wget "http://nginx.org/download/nginx-1.20.1.tar.gz" # 使用tar命令解压 tar -xf nginx-1.20.1.tar.gz # 进入解压后出现的目录,已备接下来的编译 cd nginx-1.20.1编译Nginx首先,我们需要生成makefile文件,编译时候的参数可以参考官方Nginx文档: http://nginx.org/en/docs/configure.html 我自己编译Nginx时候,选择的参数一般是: 代码语言:txt复制./configure \--prefix=/etc/nginx \--sbin-path=/usr/sbin/nginx \--conf-path=/etc/nginx/nginx.conf \--error-log-path=/var/log/nginx/error.log \--http-log-path=/var/log/nginx/access.log \--pid-path=/var/run/nginx.pid \--lock-path=/var/run/nginx.lock \--http-client-body-temp-path=/var/cache/nginx/client_temp \--http-proxy-temp-path=/var/cache/nginx/proxy_temp \--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \--http-scgi-temp-path=/var/cache/nginx/scgi_temp \--user=www \--group=www \--with-file-aio \--with-threads \--with-http_addition_module \--with-http_auth_request_module \--with-http_dav_module \--with-http_flv_module \--with-http_gunzip_module \--with-http_gzip_static_module \--with-http_mp4_module \--with-http_random_index_module \--with-http_realip_module \--with-http_secure_link_module \--with-http_slice_module \--with-http_ssl_module \--with-http_stub_status_module \--with-http_sub_module \--with-http_v2_module \--with-mail \--with-mail_ssl_module \--with-stream \--with-stream_realip_module \--with-stream_ssl_module \--with-stream_ssl_preread_module其中: --prefix:Nginx主要安装路径,后续Nginx子目录依照这个变量展开--user:设置Nginx进程启动时,所属的用户--group:设置Nginx进程启动时,所属的用户组如果没问题,会显示信息: 代码语言:txt复制Configuration summary + using threads + using system PCRE library + using system OpenSSL library + using system zlib library nginx path prefix: "/etc/nginx" nginx binary file: "/usr/sbin/nginx" nginx modules path: "/etc/nginx/modules" nginx configuration prefix: "/etc/nginx" nginx configuration file: "/etc/nginx/nginx.conf" nginx pid file: "/var/run/nginx.pid" nginx error log file: "/var/log/nginx/error.log" nginx http access log file: "/var/log/nginx/access.log" nginx http client request body temporary files: "/var/cache/nginx/client_temp" nginx http proxy temporary files: "/var/cache/nginx/proxy_temp" nginx http fastcgi temporary files: "/var/cache/nginx/fastcgi_temp" nginx http uwsgi temporary files: "/var/cache/nginx/uwsgi_temp" nginx http scgi temporary files: "/var/cache/nginx/scgi_temp"makefile之后,执行编译即可: 代码语言:txt复制make && make install编译安装完成这个时候,我们使用浏览器即可看到Nginx已经可以使用了。 方法选择个人推荐安装优先度: 编译安装>Docker安装>dpkg安装 原因主要是: 编译安装可以自己定义模块,而且流程可以追溯。当然,三种方法都是很不错的Nginx安装方法。 常用Nginx命令这边给大家介绍一些Nginx常用命令: 命令 命令含义 nginx 打开 nginx nginx -t 测试配置文件是否有语法错误 nginx -s reopen 重启Nginx nginx -s reload 重新加载Nginx配置文件 nginx -s stop 强制停止Nginx服务 nginx -s quit 安全地停止Nginx服务(即处理完所有请求后再停止服务) 如何卸载Nginx如果想换安装Nginx的安装方式,已经安装的Nginx如何卸载呢? dpkg卸载Nginx如果你使用的是dpkg安装的Nginx,安装很简单,卸载也一样: 代码语言:txt复制# 卸载Nginx sudo apt-get remove nginxdocker卸载Nginx如果你使用Docker安装的Nginx,卸载也很简单: 代码语言:txt复制# 查看Nginx镜像ID docker images查看Nginx镜像ID获取ID后,根据ID卸载即可: 代码语言:txt复制docker rmi d1a3如果删除失败,比如: 删除失败我们先清其依赖: 代码语言:txt复制 docker ps -a docker rm $ID docker rmi $ID卸载成功编译删除Nginx编译删除Nginx也很简单,首先停止运行Nginx: 代码语言:txt复制# 关闭Nginx nginx -s quit # 删除Nginx sudo rm -rf /etc/nginx这样Nginx就已经卸载完成了 总结其实呢?个人是喜欢编译安装Nginx。不过,其实宝塔面板的Nginx也很不错,新版本也可以选择模块编译安装,但是总有些大佬,觉得面板部署没有“灵魂”。这里不过多介绍。 如果你平时喜欢用Docker,可以试试Docker安装,Docker的第三方库,应该是可以安装模块的,或者有集成模块。 Nginx确实是个Web服务器神器呢~~~ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |